// 故障源统计-线路故障统计js文件

var lineFaultCountData;
function getChartData() {
	var startTime = document.getElementById('lineFaultForm:popup1_input').value;
	var endTime = document.getElementById('lineFaultForm:popup2_input').value;
	var voltage = document.getElementById("lineFaultForm:voltage_label").innerText;
	$.ajaxSettings.async = false;
	$.getJSON("/rest/faultCount/getLineFaultUploadCountInfos/"+startTime+"/"+endTime+"/"+voltage,function(result){
		lineFaultCountData = result;
	});
	initLineFaultChartDate();
	$.ajaxSettings.async = true;
}

function initLineFaultChartDate() {
	// 调度单位或运维单位
	var indexV = document.getElementById("countDetail:selectMenu").selectedIndex; // 获取当前选择项的索引
	var itemValue = document.getElementById("countDetail:selectMenu").options[indexV].value; // 获取当前选择项的值
	var data;
	if(itemValue == "0") {
		data = eval('('+lineFaultCountData[0]+')'); // 运维单位
	} else if(itemValue == "1") {
		data = eval('('+lineFaultCountData[1]+')'); // 调度单位
	}
	// 集中录波、保护录波、保护事件
	var indexV1 = document.getElementById("countDetail:selectDataSource").selectedIndex; // 获取当前选择项的索引
	var itemValue1 = document.getElementById("countDetail:selectDataSource").options[indexV1].value; // 获取当前选择项的值
	var data1 = [];
	if(itemValue1 == "0") {
		data1 = data.集中录波;
	} else if(itemValue1 == "1") {
		data1 = data.保护录波;
	} else if (itemValue1 == "2") {
		data1 = data.保护事件;
	}
	initChart(data1,"countbar");
}

function initChart(data1,chartId) {
	var areas = []; // 单位名称
	var should = []; // 应评价次数
	var actualUpload = []; // 系统自动上送次数
	var manualUpload = []; // 人工上送次数
	var ratios = []; // 完成率
	for(var i=0;i<data1.length;i++) {
		var obj = data1[i];
		areas.push(obj.comp);
		var value = obj.value;
		should.push(value[0]);
		actualUpload.push(value[1]);
		manualUpload.push(value[2]);
		ratios.push(value[3]);
	}
	var linebars = new Bars(chartId);
	linebars.setRatio(ratios); // 上送率
	linebars.setShould(should); // 应评价次数
	linebars.setActualUpload(actualUpload); // 系统自动上送次数
	linebars.setManualUpload(manualUpload); // 人工上送次数
	linebars.setXdatas(areas);
	linebars.show();
}

var Bars = function(chartid) {
	var myChart = echarts.init(document.getElementById(chartid));
	var option = {
		dataZoom : [ {
			id : 'dataZoomX',
			type : 'inside',
			show : true,
			xAxisIndex : [ 0 ],
			filterMode : 'filter'
		} ],
		title : {},
		tooltip : {
			trigger : 'axis'
		},
		toolbox : {
			feature : {
				dataView : {
					readOnly : false,
					show: true,
					optionToContent : function(opt) {
						var axisData = opt.xAxis[0].data;
						var series = opt.series;
						var table = '<table border="1" style="width:100%;text-align:center"><tbody><tr>'
								+ '<td>' + opt.xAxis[0].name + '</td>';
						for ( var j = 0; j < series.length; j++) {
							table = table + '<td>' + series[j].name + '</td>';
						}
						for ( var i = 0, l = axisData.length; i < l; i++) {
							table += '<tr>' + '<td>' + axisData[i] + '</td>';
							for ( var z = 0; z < series.length; z++) {
								if (isNaN(parseInt(series[z].data[i]))) {
									table = table + '<td>' + '</td>';
								} else {
									table = table + '<td>' + series[z].data[i] + '</td>';
								}
							}
						}
						table += '</tbody></table>';
						return table;
					},
					iconStyle : {
						normal : {},
						emphasis : {}
					}
				},
				restore : {
					show : true
				},
				saveAsImage : {
					show : true
				}
			}
		},
		grid : {
			containLabel : true
		},
		legend : {
			data : ['上送率','应评价次数','自动上送次数','人工上送次数']
		},
		xAxis : [ {
			type : 'category',
			axisTick : {
				alignWithLabel : true
			},
			data : []
		} ],
		yAxis : [ {
			type : 'value',
			name : '上送率',
			min : 0,
			max : 100,
			position : 'right',
			axisLabel : {
				formatter : '{value}%'
			}
		}, {
			type : 'value',
			name : '次数',
			min : 0,
			position : 'left'
		} ],
		series : [ {
			name : '上送率',
			type : 'line',
			data : []
		}, {
			name : '应评价次数',
			type : 'bar',
			yAxisIndex : 1,
			data : [],
			label:{
				normal:{
					show:true,
					textStyle:{},
					position:'top'
				},
				emphasis:{
					show:true,
					textStyle:{}
				}
			},
			 itemStyle:{
                 normal:{color:'#7ECF51'}
             }
		}, {
			name : '自动上送次数',
			type : 'bar',
			yAxisIndex : 1,
			stack:'实际上送次数',
			data : [],
			label:{
				normal:{
					show:true,
					textStyle:{},
					position:'top'
				},
				emphasis:{
					show:true,
					textStyle:{}
				}
			},
			 itemStyle:{
                 normal:{color:'#6495ED'}
             }
		}, {
			name : '人工上送次数',
			type : 'bar',
			yAxisIndex : 1,
			stack:'实际上送次数',
			data : [],
			label:{
				normal:{
					show:true,
					textStyle:{},
					position:'top'
				},
				emphasis:{
					show:true,
					textStyle:{}
				}
			},
			 itemStyle:{
                 normal:{color:'#008B8B'}
             }
		} ]
	};
	this.show = function() {
		myChart.setOption(option);
	};
	this.getChart = function() {
		return myChart;
	};
	this.setRatio = function(datas) {
		option.series[0].data = datas;
	};
	this.setShould = function(datas) {
		option.series[1].data = datas;
	};
	this.setActualUpload = function(datas) {
		option.series[2].data = datas;
	};
	this.setManualUpload = function(datas) {
		option.series[3].data = datas;
	};
	this.setXdatas = function(datas) {
		option.xAxis[0].data = datas;
	};
};
